/**
 * @author zhu
 * @date 2024-03-20
 */
public class MyThread extends Thread{
    /**
     * 循环输出当前线程的中断状态
     */
    @Override
    public void run() {
        // 1.循环
        while(true) {

            // 2.判断中断标记
            boolean status = Thread.currentThread().isInterrupted();

            if(status) {
                System.out.println("终止了采集数据线程...");
                // 3.break 退出循环
                break;
            }

            try {
                // 情况二：线程睡眠情况 - 睡眠中中断，中断标记 = true | false
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                System.out.println("在睡眠中被中断，实现一些后续处理...");
                // 中断正在睡眠的线程 - 抛出异常 + 清除中断标记(false)
                // 二次中断线程 - 正常线程的中断 - false -> true
                Thread.currentThread().interrupt();
            }

            // 情况一：线程正常运行状况
            System.out.println("子线程 - 实现采集数据功能....");

        }
    }
}
